<?xml version="1.0" encoding="utf-8" ?> 
<language xmlns="http://rsdn.ru/coloring" name="MSIL" options="(?n)">
	<!-- comments -->
	<pattern name="com">
		<entry>(?m://.*?$)</entry>
	</pattern>
	<!-- literals -->
	<pattern name="str">
		<entry><![CDATA[(?<!@)"((?<!\\)\\"|[^"])*"]]></entry>
		<entry>@"(""|[^"])*"</entry>
	</pattern>
	<!-- keywords -->
	<pattern name="kw" postfix="\b">
		<entry>\.hash</entry>
		<entry>\.mresource</entry>
		<entry>\.field</entry>
		<entry>\.module</entry>
		<entry>\.imagebase</entry>
		<entry>\.subsystem</entry>
		<entry>\.file</entry>
		<entry>\.corflags</entry>
		<entry>\.property</entry>
		<entry>\.get</entry>
		<entry>\.set</entry>
		<entry>\.maxstack</entry>
		<entry>\.namespace</entry>
		<entry>\.method</entry>
		<entry>\.entrypoint</entry>
		<entry>\.assembly</entry>
		<entry>\.publickeytoken</entry>
		<entry>\.ver</entry>
		<entry>\.custom</entry>
		<entry>\.ctor</entry>
		<entry>(\bcast|\b|\.)class</entry>
	</pattern>
	<!-- keywords -->
	<pattern name="kw" prefix="\b">
		<entry>unaligned\.</entry>
		<entry>volatile\.</entry>
		<entry>tail\.</entry>
	</pattern>
	<!-- keywords -->
	<pattern name="kw" prefix="\b" postfix="\b">
		<entry>managed</entry>
		<entry>cil</entry>
		<entry>static</entry>
		<entry>extern</entry>
		<entry>final</entry>
		<entry>specialname</entry>
		<entry>virtual</entry>
		<entry>newslot</entry>
		<entry>winapi</entry>
		<entry>lasterr</entry>
		<entry>hidebysig</entry>
		<entry>pinvokeimpl</entry>
		<entry>cdecl</entry>
		<entry>float64</entry>
		<entry>public</entry>
		<entry>nop</entry>
		<entry>break</entry>
		<entry>ldarg(\.[0-3s]|a?(\.s)?)?</entry>
		<entry>ldloc(\.[0-3s]|a?(\.s)?)?</entry>
		<entry>stloc(\.[0-3s]|a?(\.s)?)?</entry>
		<entry>starg(\.s)?</entry>
		<entry>ldnull</entry>
		<entry>ldc\.(i4(\.(m1|[0-8s]))?|i8|r4|r8)</entry>
		<entry>dup</entry>
		<entry>pop</entry>
		<entry>jmp</entry>
		<entry>call</entry>
		<entry>calli</entry>
		<entry>ret</entry>
		<entry>br(\.s)?</entry>
		<entry>brfalse(\.s)?</entry>
		<entry>brtrue(\.s)?</entry>
		<entry>beq(\.s)?</entry>
		<entry>bge(\.s|\.un(\.s)?)?</entry>
		<entry>bgt(\.s|\.un(\.s)?)?</entry>
		<entry>ble(\.s|\.un(\.s)?)?</entry>
		<entry>blt(\.s|\.un(\.s)?)?</entry>
		<entry>bne(\.s|\.un(\.s)?)?</entry>
		<entry>switch</entry>
		<entry>ldind\.i1</entry>
		<entry>ldind\.u1</entry>
		<entry>ldind\.i2</entry>
		<entry>ldind\.u2</entry>
		<entry>ldind\.i4</entry>
		<entry>ldind\.u4</entry>
		<entry>ldind\.i8</entry>
		<entry>ldind\.i</entry>
		<entry>ldind\.r4</entry>
		<entry>ldind\.r8</entry>
		<entry>ldind\.ref</entry>
		<entry>stind\.ref</entry>
		<entry>stind\.i1</entry>
		<entry>stind\.i2</entry>
		<entry>stind\.i4</entry>
		<entry>stind\.i8</entry>
		<entry>stind\.r4</entry>
		<entry>stind\.r8</entry>
		<entry>div(\.un)?</entry>
		<entry>rem(\.un)?</entry>
		<entry>and</entry>
		<entry>or</entry>
		<entry>xor</entry>
		<entry>shl</entry>
		<entry>shr(\.un)?</entry>
		<entry>neg</entry>
		<entry>not</entry>
		<entry>conv\.i1</entry>
		<entry>conv\.i2</entry>
		<entry>conv\.i4</entry>
		<entry>conv\.i8</entry>
		<entry>conv\.r4</entry>
		<entry>conv\.r8</entry>
		<entry>conv\.u4</entry>
		<entry>conv\.u8</entry>
		<entry>callvirt</entry>
		<entry>cpobj</entry>
		<entry>ldobj</entry>
		<entry>ldstr</entry>
		<entry>newobj</entry>
		<entry>isinst</entry>
		<entry>conv\.r\.un</entry>
		<entry>unbox</entry>
		<entry>unbox\.any</entry>
		<entry>throw</entry>
		<entry>ldfld</entry>
		<entry>ldflda</entry>
		<entry>stfld</entry>
		<entry>ldsfld</entry>
		<entry>ldsflda</entry>
		<entry>stsfld</entry>
		<entry>stobj</entry>
		<entry>conv\.ovf\.i(\.un)?</entry>
		<entry>conv\.ovf\.u(\.un)?</entry>
		<entry>box</entry>
		<entry>newarr</entry>
		<entry>ldlen</entry>
		<entry>ldelema</entry>
		<entry>ldelem\.i1</entry>
		<entry>ldelem\.u1</entry>
		<entry>ldelem\.i2</entry>
		<entry>ldelem\.u2</entry>
		<entry>ldelem\.i4</entry>
		<entry>ldelem\.u4</entry>
		<entry>ldelem\.i8</entry>
		<entry>ldelem\.i</entry>
		<entry>ldelem\.r4</entry>
		<entry>ldelem\.r8</entry>
		<entry>ldelem\.ref</entry>
		<entry>ldelem</entry>
		<entry>stelem\.i</entry>
		<entry>stelem\.i1</entry>
		<entry>stelem\.i2</entry>
		<entry>stelem\.i4</entry>
		<entry>stelem\.i8</entry>
		<entry>stelem\.r4</entry>
		<entry>stelem\.r8</entry>
		<entry>stelem\.ref</entry>
		<entry>stelem</entry>
		<entry>conv\.ovf\.i1(\.un)?</entry>
		<entry>conv\.ovf\.u1(\.un)?</entry>
		<entry>conv\.ovf\.i2(\.un)?</entry>
		<entry>conv\.ovf\.u2(\.un)?</entry>
		<entry>conv\.ovf\.i4(\.un)?</entry>
		<entry>conv\.ovf\.u4(\.un)?</entry>
		<entry>conv\.ovf\.i8(\.un)?</entry>
		<entry>conv\.ovf\.u8(\.un)?</entry>
		<entry>refanyval</entry>
		<entry>ckfinite</entry>
		<entry>mkrefany</entry>
		<entry>ldtoken</entry>
		<entry>conv\.u2</entry>
		<entry>conv\.u1</entry>
		<entry>conv\.i</entry>
		<entry>add(\.ovf(\.un)?)?</entry>
		<entry>mul(\.ovf(\.un)?)?</entry>
		<entry>sub(\.ovf(\.un)?)?</entry>
		<entry>endfinally</entry>
		<entry>leave(\.s)?</entry>
		<entry>stind\.i</entry>
		<entry>conv\.u</entry>
		<entry>arglist</entry>
		<entry>ceq</entry>
		<entry>cgt(\.un)?</entry>
		<entry>clt(\.un)?</entry>
		<entry>ldftn</entry>
		<entry>ldvirtftn</entry>
		<entry>localloc</entry>
		<entry>endfilter</entry>
		<entry>initobj</entry>
		<entry>constrained\.</entry>
		<entry>cpblk</entry>
		<entry>initblk</entry>
		<entry>rethrow</entry>
		<entry>sizeof</entry>
		<entry>readonly\.</entry>
		<entry>refanytype</entry>
		<entry>private</entry>
		<entry>object</entry>
		<entry>instance</entry>
		<entry>void</entry>
		<entry>string</entry>
		<entry>bool</entry>
		<entry>algorithm</entry>
		<entry>alignment</entry>
		<entry>auto</entry>
		<entry>ansi</entry>
		<entry>beforefieldinit</entry>
		<entry>extends</entry>
		<entry>value</entry>
		<entry>sequential</entry>
		<entry>unicode</entry>
		<entry>sealed</entry>
		<entry>valuetype</entry>
		<entry>unsigned</entry>
		<entry>int32</entry>
		<entry>marshal</entry>
		<entry>fixed</entry>
		<entry>sysstring</entry>
		<entry>abstract</entry>
		<entry>interface</entry>
		<entry>import</entry>
	</pattern>
</language>